package com.egao.common.module.company.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.egao.common.core.web.JsonResult;
import com.egao.common.core.web.PageParam;
import com.egao.common.module.company.entity.Recruit;
import com.egao.common.module.company.entity.vo.RecruitFormVO;
import com.egao.common.module.company.entity.vo.RecruitListVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 招聘信息(Recruit)表服务接口
 * @author dl
 */
public interface RecruitService extends IService<Recruit> {

    /**
     * 招聘列表查询
     * @param pageParam 分页对象
     * @return PositionListVO 招聘列表VO
     */
    List<RecruitListVO> listPage(PageParam<RecruitListVO> pageParam);
    /**
     * 添加招聘信息
     * @param recruitFormVO 职位表单
     * @return JsonResult 结果对象
     */
    JsonResult saveRecruit(RecruitFormVO recruitFormVO);
    /**
     * 修改招聘信息
     * @param recruitFormVO 职位表单
     * @return JsonResult 结果对象
     */
    JsonResult updateRecruit(RecruitFormVO recruitFormVO);
    /**
     * 失效招聘信息
     * @param recruitFormVO 职位表单
     * @return JsonResult 结果对象
     */
    JsonResult deleteRecruit(RecruitFormVO recruitFormVO);
    /**
     * 删除招聘信息
     * @param id 招聘信息编号
     * @return JsonResult 结果对象
     */
    JsonResult detail(Integer id);
    /**
     * 修改招聘信息
     * @param recruitFormVO 职位表单
     * @return JsonResult 结果对象
     */
    JsonResult checkRecruit(RecruitFormVO recruitFormVO);
    /**
     * 删除招聘信息
     * @param recruitFormVO 职位表单
     * @return JsonResult 结果对象
     */
    JsonResult removeRecruit(RecruitFormVO recruitFormVO);
    /**
     * 导出招聘信息
     * @param pageParam 查询map
     * @param response
     */
    void exportRecruit(PageParam<RecruitFormVO> pageParam, HttpServletResponse response);
    /**
     * 查询招聘信息数量
     * @param pageParam 查询map
     * @return
     */
    JsonResult getRecruitNumber(PageParam<RecruitListVO> pageParam);
    /**
     * 统计招聘信息
     * @param pageParam 查询map
     * @return
     */
    JsonResult countRecruit(PageParam<RecruitListVO> pageParam);
    /**
     * 统计招聘信息岗位类型
     * @param pageParam 查询map
     * @return
     */
    JsonResult countRecruitCategory(PageParam<RecruitListVO> pageParam);
    /**
     * 统计招聘信息学历类型
     * @param pageParam 查询map
     * @return
     */
    JsonResult countRecruitEducation(PageParam<RecruitListVO> pageParam);
}
